using System;
using System.Collections.Generic;
using System.Text;

namespace GPSCore.NMEA.Interfaces
{
    /// <summary>
    /// Rappresent the event of a receive of a NMEA Sentence
    /// </summary>
    /// <param name="Data"></param>
    public delegate void NMEASentenceRecieved(string Data);

    /// <summary>
    /// Force a Stop of receiving Data
    /// </summary>
    public delegate void NMEAForceStop();

    /// <summary>
    /// Rappresent the Common Interface that provide data to GPS Engine
    /// </summary>
    public interface INMEASource
    {
        /// <summary>
        /// Event Fired when a NMEA Line is received.
        /// 
        /// This contain the full NEMA Sentence
        /// </summary>
        /// <returns></returns>
        event NMEASentenceRecieved OnNMEASentenceRecieved;

        /// <summary>
        /// Expose a Forzed Stop on data acquisition
        /// </summary>
        event NMEAForceStop OnNMEAForceStop;
        
        /// <summary>
        /// Start Receive NMEA Sentence
        /// </summary>
        /// <returns></returns>
        bool Start();

        /// <summary>
        /// Stop Receive NMEA Sentence
        /// </summary>
        /// <returns></returns>
        bool Stop();
    }
}
